<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;


//回话控制器用来保存状态,方便页面之间跳转的数据传递
class SessionsController extends Controller
{


//显示登录页面
public function create() {

 return view('sessions.create');

}


//响应登录动作

    /**
     * @param Request $request
     */
    public function store(Request $request) {

//数据基本验证.email格式
  $this->validate($request, [
            'email' => 'required|email|max:255',
            'password' => 'required'
        ]);



//验证账户是否存在,密码是否匹配

/*
借助 Laravel 提供的 Auth 的 attempt 方法可以让我们很方便的完成用户的身份认证操作
attempt 方法会接收一个数组来作为第一个参数，该参数提供的值将用于寻找数据库中的用户数据。因此在
上面的例子中，用户信息将使用 email 字段的值在数据库中进行查找，如果用户被找到，在将 password
的值进行哈希加密并与数据库中已加密过的密码进行匹配，如果匹配后两个值完全一致，则会创建一个通过
认证的会话给用户。会话获取到之后，即视为用户登录成功。当用户身份认证成功 attempt 方法
会返回 true，反之则返回 false。

*/

$credentials = [
           'email'    => $request->email,
           'password' => $request->password
       ];

$loginSuccess = Auth::attempt($credentials);

//登录成功后，重定向到用户个人页面。
if ($loginSuccess) {
    session()->flash('success', '欢迎回来！');
    return redirect()->route('users.show', [Auth::user()]);

} else {
      session()->flash('danger', '很抱歉，您的邮箱和密码不匹配');
      return redirect()->back();
}



}




}
